//1.引入axios
import axios from "axios";
import store from "../../store";
import { getUserTempId } from '@/utils/getUserTempId'
//进度条
import nProgress from "nprogress";
import "nprogress/nprogress.css";

//2.创建实例对对象 然后统一配置之后再去发送数据
const requestSph = axios.create({
  baseURL: '/api', // 请求的基本路径
  timeout: 20000, // 设置超时时间
});

//3.请求拦截器 在请求发送之前执行里面的代码
requestSph.interceptors.request.use(
  (config) => {
    //一定要返回配置项 这个config包含了请求的一些配置信息
    nProgress.start();
    config.headers.userTempId = getUserTempId()
    let token = store.state.user.token;
   
    if (token) {
      config.headers.token = token;
    }

    return config;
  },
  (err) => {
    alert("请求拦截失败", err);
    return Promise.reject(Error.err);
  }
);
//4.响应拦截器
requestSph.interceptors.response.use(
  (response) => {
    //设置进度条的结束
    nProgress.done();
    //返回的是data中的数据
    return response.data;
  },
  (err) => {
    nProgress.done();
    // 统一处理错误
    alert("发送requestSph请求失败" + err.message);
    return Promise.reject(err);
  }
);

// 5.导出对象
export default requestSph;
